
03.02.2015, 23:58
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
AJAX и проблема с кодировкой кириллицы.
Здравствуйте. Есть простой, статичный сайт .html, с указанием кодировки "windows-1251" в <head>, встроенный js с работающим скриптом (ajax) и несколько текстовых документов.
Вот адрес сайта http://mangal.biz/test/easy/index.html
Подгрузка содержимого осуществляется при клике на "Главная", "Контакты" или "О нас".
При первоначальном запуске сайта, в <div> подгружается и корректно отображается, собственный контент на кириллице, при нажатии на одну из кнопок, в тот же <div> подгружается содержимое соответствующего текстового документа, но оно отображается вот так �����.
Подскажите, пожалуйста, как это исправить.
P.S. С "utf-8", даже при указании кодировки "windows-1251" только латиница отображается правильно.
Последний раз редактировалось Blondinka, 04.02.2015 в 00:47.
|
|

04.02.2015, 02:58
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
|
|

04.02.2015, 03:01
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Везде юзай utf-8. Че там в meta указано - не имеет значения (это только запасной вариант). Важно какую кодировку выставляет сервер в своих заголовках. Для Apache в .htaccess пропиши:
Код:
|
# use utf-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# force utf-8 for a number of file formats
AddCharset utf-8 .html .css .js .xml .json .rss |
__________________
В личку только с интересными предложениями
|
|

04.02.2015, 03:04
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Deff, ну зачем же сразу предлагать жуткие костыли, а? Может все решится нормальным способом, без извратов.
__________________
В личку только с интересными предложениями
|
|

04.02.2015, 15:53
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Danik.js, cпасибо. Теперь, на локальном сервере русская кодировка работает, но на mangal.biz, почему-то, не работает. Я заменила все, найденные мною на хостинге, .htaccess-файлы. Там много всяких .php-файлов. Возможно, они как-то всё тормозят.
|
|

04.02.2015, 16:44
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Deff, alert вывел мне какие-то проценты и цыфры (%23%23%233%3BA%C1%C1-1%23%23%23). Я так понимаю, что этот код преобразует кирилицу в шестнадцатеричный код. Допустим, я могу его запускать при каждом запуске AJAX-кода. Но, как заставить его преображать вопросительные знаки в кирилицу? Вопросительные знаки - это же 16-ричный код?
|
|

04.02.2015, 17:03
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Blondinka,
Собственно код для отправки на сервер, при получении кода сервера тут нун делать правки уже для Аякса на сервере:
http://habrahabr.ru/blogs/webdev/17640/
Просто не Хватает PHP скрипта на стороне сервера
Для GET запросов
Цитата:
|
Всё, что надо сделать, чтобы теперь работать
в PHP в
нормальной кодировке использовать iconv:
$f = iconv('UTF-8', 'windows-1251', $_GET['f']);
|
Для Post запросов
Цитата:
|
А для того, чтобы сервер отдавал яваскрипту в правильной кодировке (т.е. в такой же кодировке, в которой отдаются все xhtml страницы) просто в начале вашего ajax.php пропишите заголовок:
header('Content-type: text/html; charset=windows-1251');
И всё будет ок.
|
|
|

04.02.2015, 18:00
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Blondinka, можно ссылку на проблемную страничку?
__________________
В личку только с интересными предложениями
|
|

04.02.2015, 18:21
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Ссылка всё та же http://mangal.biz/test/easy/index.html. Содержимое (.htaccess) уже изменилось, но, почему-то, не работает.
|
|

04.02.2015, 21:15
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Я изменила код в теге <script>, но теперь, вообще, ничего не работает. Вот изменённый код
header('Content-type: text/html; charset=utf-8');
var contentToLoad;
var about = iconv('UTF-8', $_GET["about.txt"]), index = iconv('UTF-8', $_GET["index.txt"]),
contacts = iconv('UTF-8', $_GET["contacts.txt"]);
|
|
|
|